Node.js 發明人 Ryan Dahl 在2018年 JSconf 演講 『10 Things I Regret About Node.js』,談到 Node.js 的 10 個技術債,他希望能重新開發一個全新的軟體,解決這10個技術債,這也就是 Deno 的起源。
Deno 在 2020/5/13 發行 v1.0 版,趁熱測試一下,感覺非常舒暢,迫不及待把心得跟同好分享。
參考 『官方網站』,有各種平台的安裝方式,若是 Windows,則開啟Windows PowerShell執行以下指令:
iwr https://deno.land/x/install/install.ps1 -useb | iex
茶才喝一口就安裝好了,爽 !!
執行以下指令,可以顯示命令行執行的相關參數列表及用法。
deno -h
Deno 直接支援 TypeScript,剪貼 『官方網站』 如下程式碼,存成 test1.ts。
import { serve } from "https://deno.land/std@0.50.0/http/server.ts";
const s = serve({ port: 5000 });
console.log("http://localhost:5000/");
for await (const req of s) {
req.respond({ body: "Hello World\n" });
}
執行下列命令:
deno run test1.ts
出現錯誤,提示要加 --allow-net 參數選項,以開啟網路權限,真貼心。再試一次,執行下列命令:
deno run --allow-net test1.ts
開啟瀏覽器,輸入URL,http://localhost:5000/ ,出現Hello World,正確無誤。
再看『『GitHub 官網』』,std 目錄下有提供標準的 Library,次目錄 std/examples中有許多的範例,抓 cat.ts 來試試:
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
const filenames = Deno.args;
for (const filename of filenames) {
const file = await Deno.open(filename);
await Deno.copy(file, Deno.stdout);
file.close();
}
執行下列命令,cat.ts 接收一個參數 -- 檔案名稱,並將檔案內容顯示在畫面上:
deno run cat.ts cat.ts
出現錯誤,提示要加 --allow-read 參數選項,以開啟讀取權限,真厲害,還知道程式要讀取檔案。再試一次,執行下列命令:
deno run --allow-read cat.ts cat.ts
出現檔案內容,正確無誤。
哇 !! 還可以打包成執行檔,指令如下:
deno run --allow-net test1.ts
把 run 改成 install 即可,它會產生一個 cmd 檔,直接執行即可,讚啦 !!
想進一步使用 KOA 框架試試看,發覺不支援 Deno,但發現有人把 KOA 改寫成 OAK,真頑皮 !!
程式如下,存檔為 oak_test.ts:
import { Application } from "https://deno.land/x/oak/mod.ts";
const app = new Application();
app.use((ctx) => {
ctx.response.body = "Hello Michael!";
});
await app.listen({ port: 5000 });
執行下列命令:
deno run --allow-net oak_test.ts
測試一下,又成功了,無比舒暢 !!
接下來,應該有得忙了,左腦負責 AI,右腦負責 Deno,好好把 TypeScript、Deno 烤熟,寫一些有趣的程式,自娛娛人。
老師您好,我最近也在研究Deno,看到有人也在玩特別開心~
這是我之前寫的文章,想一起交流!
「【圖解Deno教學】介紹x安裝x使用 三合一」
https://ithelp.ithome.com.tw/articles/10231612
讚, 加油 !